/* Copyright (c) [2025] [zhi1208@126.com]
 * SPDX-License-Identifier: MIT
 */

#pragma once

/*********************
 *      INCLUDES
 *********************/
#include <time.h>
#include <stdbool.h>
#include <stdint.h>

/*********************
 *      DEFINES
 *********************/

/**********************
 *      TYPEDEFS
 **********************/
typedef struct
{
    void (*item_creat)(char *ssid);
    void (*clean)();
    void (*loading_anim_start)();
    void (*loading_anim_stop)();
} hmi_hal_wifi_list_ops_t;

/**********************
 * GLOBAL PROTOTYPES
 **********************/
void hmi_hal_avail_wifi_list_get(hmi_hal_wifi_list_ops_t *ops);
void hmi_hal_wifi_connect(const char *ssid, const char *pwd);
char *hmi_hal_connected_wifi_get();
void hmi_hal_auto_dt_enable();
void hmi_hal_auto_dt_disable();
struct tm *hmi_hal_dt_get();
void hmi_hal_dt_set(struct tm *tm_info);
void hmi_hal_weather_get();
bool hmi_hal_nvs_set(const char *key, int32_t val);
bool hmi_hal_nvs_get(const char *key, int32_t *value);

/**********************
 *      MACROS
 **********************/